import http from '../utils/request.js';
import config from '../utils/config.js';

// 订单API服务
const orderApi = {
    /**
     * 获取订单列表
     * @param {Object} params - 查询参数（分页、排序等）
     * @returns {Promise}
     */
    getOrderList(params) {
        return http.get(config.API.order.list, { params });
    },
    
    /**
     * 获取订单详情
     * @param {String|Number} id - 订单ID
     * @returns {Promise}
     */
    getOrderDetail(id) {
        return http.get(`${config.API.order.detail}/${id}`);
    },
    
    /**
     * 更新订单状态
     * @param {String|Number} id - 订单ID
     * @param {Object} data - 更新数据
     * @returns {Promise}
     */
    updateOrderStatus(id, data) {
        return http.put(`${config.API.order.update}/${id}`, data);
    },
    
    /**
     * 获取所有订单（管理员功能）
     * @param {Object} params - 查询参数（分页、排序等）
     * @returns {Promise}
     */
    getAllOrders(params) {
        return http.get(config.API.order.admin.list, { params });
    },
    
    /**
     * 标记订单为已付款（管理员功能）
     * @param {String|Number} id - 订单ID
     * @returns {Promise}
     */
    markAsPaid(id) {
        return http.put(`${config.API.order.admin.markPaid}/${id}`);
    },
    
    /**
     * 标记订单为已发货（管理员功能）
     * @param {String|Number} id - 订单ID
     * @returns {Promise}
     */
    markAsShipped(id) {
        return http.put(`${config.API.order.admin.markShipped}/${id}`);
    },
    
    /**
     * 取消订单（管理员功能）
     * @param {String|Number} id - 订单ID
     * @returns {Promise}
     */
    cancelOrder(id) {
        return http.put(`${config.API.order.admin.cancel}/${id}`);
    }
};

export default orderApi; 